package Easy;

// 219. 存在重复元素II
// 给定一个整数数组和一个整数 k，判断数组中是否存在两个不同的索引 i 和 j，
// 使得 nums [i] = nums [j]，并且 i 和 j 的差的 绝对值 至多为 k。
/*
 * 思路，在数组中寻找nums[i]，寻找到以后记录当前位置curI,然后再找到一个记录为curJ
 * if(abs(curI-curJ) <= k) return true；
 * else curI=curJ,寻找下一个k的位置记录为curJ，重复上述步骤
 * 本轮循环没找到，就i++
 * 最后也没返回true，则返回false
 * */
public class Solution219 {
    public boolean containsNearbyDuplicate(int[] nums, int k) {
        int cur;
        for (int i = 0; i < nums.length; i++) {
            cur = -1;
            for (int j = i + 1; j < nums.length; j++) {
                if (nums[i] == nums[j]) {
                    cur = j;
                    if (cur - i <= k) return true;
                }
            }
        }
        return false;
    }

    public static void main(String[] args) {
        System.out.println(new Solution219().containsNearbyDuplicate(new int[]{1, 2, 3, 1}, 3));
    }
}
